Mtac: A Monad for Typed Tactic Programming in Coq Reference Manual
نویسندگان
چکیده
Effective support for custom proof automation is essential for largescale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently-typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference.
منابع مشابه
Interactive typed tactic programming in the Coq proof assistant
Interactive Typed Tactic Programming in the Coq Proof Assistant Beta Ziliani 2015 In order to allow for the verification of realistic problems, Coq provides a language for tactic programming, therefore enabling general-purpose scripting of automation routines. However, this language is untyped, and as a result, tactics are known to be difficult to compose, debug, and maintain. In this thesis, I...
متن کاملInitial Semantics for higher-order typed syntax
We present an initial semantics result for typed higher-order syntax based on monads and modules over monads. The notion of module generalizes the substitution structure of monads. For a simply typed binding signature S we define a representation of S to be a monad equipped with a morphism of modules for each of its arities. The monad of abstract syntax of S then is the initial object in the ca...
متن کاملMirrorShard: Proof by Computational Reflection with Verified Hints
We describe a method for building composable and extensible verification procedures within the Coq proof assistant. Unlike traditional methods that rely on run-time generation and checking of proofs, we use verified-correct procedures with Coq soundness proofs. Though they are internalized in Coq’s logic, our provers support sound extension by users with hints over new domains, enabling automat...
متن کاملTowards Certified Meta-Programming with Typed Template-Coq
Template-Coq is a plugin for Coq, originally implemented by Malecha [17], which provides a reifier for Coq terms and global declarations, as represented in the Coq kernel, as well as a denotation command. Initially, it was developed for the purpose of writing functions on Coq’s AST in Gallina. Recently, it was used in the CertiCoq certified compiler project [4], as its front-end language, to de...
متن کاملExtended Initiality for Typed Abstract Syntax
Initial Semantics aims at interpreting the syntax associated to a signature as the initial object of some category of “models”, yielding induction and recursion principles for abstract syntax. Zsidó [Zsi10, Chap. 6] proves an initiality result for simply–typed syntax: given a signature S, the abstract syntax associated to S constitutes the initial object in a category of models of S in monads. ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2013